In a storage system including an initiator (e.g., a host) and a target sub-system including target storage devices, compression may be used to reduce the memory footprint and the network bandwidth. The compression may be performed at the initiator of the storage system, which may lead to a smaller footprint throughout the storage system. However, certain applications and system requirements prevent enabling compression/decompression at the initiator. In those cases, it may become imperative to enable compression/decompression at the target storage devices, especially for applications requiring huge data storage capacities. However, compression at the target storage devices may be challenging. For example, the target storage devices may include block storage devices where data reads and writes are performed in blocks, and the initiator and the target storage devices may communicate in blocks. As such, after the incoming block of host data is compressed at the target storage devices, the resulting compressed data may be written to the target storage devices in the same block size as that of the incoming block. Therefore, the compression savings may not translate to more free blocks in the target storage devices.
Accordingly, it would be desirable and useful to provide an improved storage system.